#ifndef _AHOC_H_
#define _AHOC_H_

#include <sys/types.h>

struct ahoc_automaton;

typedef int (*ahoc_outfunc)(int index, void *tag);

struct ahoc_automaton *ahoc_new(ahoc_outfunc func, int ignore_case);
void ahoc_add(struct ahoc_automaton *ac, const uint8_t *buf, int len, void *tag);
void ahoc_prepare(struct ahoc_automaton *ac);
void ahoc_search(struct ahoc_automaton *ac, const uint8_t *buf, uint32_t len);
void ahoc_free(struct ahoc_automaton *ac);

#endif
